﻿Imports System.Text
Imports System.IO

Public Class ArchivoUtil

    'Para leer acentos y otros caracteres especiales
    Public Shared Function leerArchivoEnUTF8(ByVal archivo As String) As MemoryStream
        Dim texto = File.ReadAllText(archivo, Encoding.Default)
        Dim txt_utf8 As New UTF8Encoding()
        Return New MemoryStream(txt_utf8.GetBytes(texto))
    End Function

    Public Shared Sub eliminarSiExiste(ByVal archivo As String)
        If System.IO.File.Exists(archivo) Then
            System.IO.File.Delete(archivo)
        End If
    End Sub

    Public Shared Sub testExiste(ByVal archivo As String)
        If System.IO.File.Exists(archivo) Then
            MsgBox("'" & archivo & "' existe")
        Else
            MsgBox("'" & archivo & "' NO existe")
        End If
    End Sub
    'http://msdn.microsoft.com/en-us/library/6ka1wd3w(v=vs.110).aspx
    Public Shared Sub escribirArchivo(ByVal archivo As String, ByRef data As String)
        Using outfile As New StreamWriter(archivo)
            outfile.Write(data)
        End Using
    End Sub
    Public Shared Sub escribirArchivo(ByVal archivo As String, ByRef sb As StringBuilder)
        escribirArchivo(archivo, sb.ToString())
    End Sub
    Public Shared Function getArchivoComoTexto(ByVal archivo As String) As String
        Using sr As New StreamReader(archivo)
            Return sr.ReadToEnd
        End Using
    End Function
    Public Shared Function getArchivoComoTextoUTF8(ByVal archivo As String) As String
        Using sr As New StreamReader(leerArchivoEnUTF8(archivo))
            Return sr.ReadToEnd
        End Using
    End Function
    Public Shared Sub copiarArchivo(ByVal archivoFuente As String, ByVal archivoDestino As String)
        escribirArchivo(archivoDestino, getArchivoComoTextoUTF8(archivoFuente))
    End Sub
End Class
